package com.mobile.service.statemachine;

import lombok.Data;

/**
 * 工单状态流转上下文
 * 包含状态流转过程中需要的所有参数和数据
 */
@Data
public class WorkOrderStateContext {
    /** 工单ID - 要进行状态流转的工单唯一标识 */
    private Integer workOrderId;
    
    /** 处理人员ID - 负责处理当前工单的业务人员标识 */
    private String processorId;
    
    /** 调度员ID - 负责分派工单的调度人员标识 */
    private String dispatcherId; // 修改为 String 类型
    
    /** 分配原因 - 工单分配给特定处理人员的原因说明 */
    private String allocationReason;
    
    /** 调度类型 - 工单的调度分派方式（如：自动分派、手动分派等） */
    private String dispatchType;
    
    /** 预计审核时长 - 预估完成审核所需的时间（单位：小时） */
    private Integer estimatedReviewDuration;
    
    /** 审核意见 - 审核过程中的评价和建议内容 */
    private String reviewComment;
    
    /** 当前操作用户 - 执行状态流转操作的用户标识 */
    private String currentUser;

    /**
     * 默认构造函数
     */
    public WorkOrderStateContext() {
    }

    /**
     * 带参数的构造函数
     * @param workOrderId 工单ID
     * @param processorId 处理人员ID
     * @param currentUser 当前操作用户
     */
    public WorkOrderStateContext(Integer workOrderId, String processorId, String currentUser) {
        this.workOrderId = workOrderId;
        this.processorId = processorId;
        this.currentUser = currentUser;
    }
}